/*
 * jQuery Superfish Menu Plugin - v1.7.9
 * Copyright (c) 2016 Joel Birch
 *
 * Dual licensed under the MIT and GPL licenses:
 *	http://www.opensource.org/licenses/mit-license.php
 *	http://www.gnu.org/licenses/gpl.html
 */
import jQuery from 'jquery'
;(function (a, b) {
    'use strict'
    var c = (function () {
        var c = {
                bcClass: 'sf-breadcrumb',
                menuClass: 'sf-js-enabled',
                anchorClass: 'sf-with-ul',
                menuArrowClass: 'sf-arrows',
            },
            d = (function () {
                var b =
                    /^(?![\w\W]*Windows Phone)[\w\W]*(iPhone|iPad|iPod)/i.test(
                        navigator.userAgent,
                    )
                return (
                    b && a('html').css('cursor', 'pointer').on('click', a.noop),
                    b
                )
            })(),
            e = (function () {
                var a = document.documentElement.style
                return (
                    'behavior' in a &&
                    'fill' in a &&
                    /iemobile/i.test(navigator.userAgent)
                )
            })(),
            f = (function () {
                return !!b.PointerEvent
            })(),
            g = function (a, b, d) {
                var e,
                    f = c.menuClass
                b.cssArrows && (f += ' ' + c.menuArrowClass),
                    (e = d ? 'addClass' : 'removeClass'),
                    a[e](f)
            },
            h = function (b, d) {
                return b
                    .find('li.' + d.pathClass)
                    .slice(0, d.pathLevels)
                    .addClass(d.hoverClass + ' ' + c.bcClass)
                    .filter(function () {
                        return a(this).children(d.popUpSelector).hide().show()
                            .length
                    })
                    .removeClass(d.pathClass)
            },
            i = function (a, b) {
                var d = b ? 'addClass' : 'removeClass'
                a.children('a')[d](c.anchorClass)
            },
            j = function (a) {
                var b = a.css('ms-touch-action'),
                    c = a.css('touch-action')
                ;(c = c || b),
                    (c = 'pan-y' === c ? 'auto' : 'pan-y'),
                    a.css({ 'ms-touch-action': c, 'touch-action': c })
            },
            k = function (a) {
                return a.closest('.' + c.menuClass)
            },
            l = function (a) {
                return k(a).data('sfOptions')
            },
            m = function () {
                var b = a(this),
                    c = l(b)
                clearTimeout(c.sfTimer),
                    b.siblings().superfish('hide').end().superfish('show')
            },
            n = function (b) {
                ;(b.retainPath = a.inArray(this[0], b.$path) > -1),
                    this.superfish('hide'),
                    this.parents('.' + b.hoverClass).length ||
                        (b.onIdle.call(k(this)),
                        b.$path.length && a.proxy(m, b.$path)())
            },
            o = function () {
                var b = a(this),
                    c = l(b)
                d
                    ? a.proxy(n, b, c)()
                    : (clearTimeout(c.sfTimer),
                      (c.sfTimer = setTimeout(a.proxy(n, b, c), c.delay)))
            },
            p = function (b) {
                var c = a(this),
                    d = l(c),
                    e = c.siblings(b.data.popUpSelector)
                return d.onHandleTouch.call(e) === !1
                    ? this
                    : void (
                          e.length > 0 &&
                          e.is(':hidden') &&
                          (c.one('click.superfish', !1),
                          'MSPointerDown' === b.type || 'pointerdown' === b.type
                              ? c.trigger('focus')
                              : a.proxy(m, c.parent('li'))())
                      )
            },
            q = function (b, c) {
                var g = 'li:has(' + c.popUpSelector + ')'
                a.fn.hoverIntent && !c.disableHI
                    ? b.hoverIntent(m, o, g)
                    : b
                          .on('mouseenter.superfish', g, m)
                          .on('mouseleave.superfish', g, o)
                var h = 'MSPointerDown.superfish'
                f && (h = 'pointerdown.superfish'),
                    d || (h += ' touchend.superfish'),
                    e && (h += ' mousedown.superfish'),
                    b
                        .on('focusin.superfish', 'li', m)
                        .on('focusout.superfish', 'li', o)
                        .on(h, 'a', c, p)
            }
        return {
            hide: function (b) {
                if (this.length) {
                    var c = this,
                        d = l(c)
                    if (!d) return this
                    var e = d.retainPath === !0 ? d.$path : '',
                        f = c
                            .find('li.' + d.hoverClass)
                            .add(this)
                            .not(e)
                            .removeClass(d.hoverClass)
                            .children(d.popUpSelector),
                        g = d.speedOut
                    if (
                        (b && (f.show(), (g = 0)),
                        (d.retainPath = !1),
                        d.onBeforeHide.call(f) === !1)
                    )
                        return this
                    f.stop(!0, !0).animate(d.animationOut, g, function () {
                        var b = a(this)
                        d.onHide.call(b)
                    })
                }
                return this
            },
            show: function () {
                var a = l(this)
                if (!a) return this
                var b = this.addClass(a.hoverClass),
                    c = b.children(a.popUpSelector)
                return a.onBeforeShow.call(c) === !1
                    ? this
                    : (c
                          .stop(!0, !0)
                          .animate(a.animation, a.speed, function () {
                              a.onShow.call(c)
                          }),
                      this)
            },
            destroy: function () {
                return this.each(function () {
                    var b,
                        d = a(this),
                        e = d.data('sfOptions')
                    return e
                        ? ((b = d.find(e.popUpSelector).parent('li')),
                          clearTimeout(e.sfTimer),
                          g(d, e),
                          i(b),
                          j(d),
                          d.off('.superfish').off('.hoverIntent'),
                          b
                              .children(e.popUpSelector)
                              .attr('style', function (a, b) {
                                  return b.replace(/display[^;]+;?/g, '')
                              }),
                          e.$path
                              .removeClass(e.hoverClass + ' ' + c.bcClass)
                              .addClass(e.pathClass),
                          d.find('.' + e.hoverClass).removeClass(e.hoverClass),
                          e.onDestroy.call(d),
                          void d.removeData('sfOptions'))
                        : !1
                })
            },
            init: function (b) {
                return this.each(function () {
                    var d = a(this)
                    if (d.data('sfOptions')) return !1
                    var e = a.extend({}, a.fn.superfish.defaults, b),
                        f = d.find(e.popUpSelector).parent('li')
                    ;(e.$path = h(d, e)),
                        d.data('sfOptions', e),
                        g(d, e, !0),
                        i(f, !0),
                        j(d),
                        q(d, e),
                        f.not('.' + c.bcClass).superfish('hide', !0),
                        e.onInit.call(this)
                })
            },
        }
    })()
    ;(a.fn.superfish = function (b, d) {
        return c[b]
            ? c[b].apply(this, Array.prototype.slice.call(arguments, 1))
            : 'object' != typeof b && b
              ? a.error(
                    'Method ' + b + ' does not exist on jQuery.fn.superfish',
                )
              : c.init.apply(this, arguments)
    }),
        (a.fn.superfish.defaults = {
            popUpSelector: 'ul,.sf-mega',
            hoverClass: 'sfHover',
            pathClass: 'overrideThisToUse',
            pathLevels: 1,
            delay: 800,
            animation: { opacity: 'show' },
            animationOut: { opacity: 'hide' },
            speed: 'normal',
            speedOut: 'fast',
            cssArrows: !0,
            disableHI: !1,
            onInit: a.noop,
            onBeforeShow: a.noop,
            onShow: a.noop,
            onBeforeHide: a.noop,
            onHide: a.noop,
            onIdle: a.noop,
            onDestroy: a.noop,
            onHandleTouch: a.noop,
        })
})(jQuery, window)
